package DAO;

import java.io.Serializable;
import java.util.ArrayList;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import to.Lancamento;
import to.Lancamento;
import to.Resultado;
import util.HibernateUtil;

public class LancamentoDAO implements Serializable {

	public ArrayList<Lancamento> buscarTodosLancamentos() {

		ArrayList<Lancamento> retornaLancamento = new ArrayList<Lancamento>();
		Session session = null;

		try {

			session = HibernateUtil.getSessionFactory().openSession();
			Criteria criteria = session.createCriteria(Lancamento.class);
			criteria.add(Restrictions.like("status", "%Em Aberto%"));
			retornaLancamento = (ArrayList<Lancamento>) criteria.list();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}

		return retornaLancamento;

	}

	public Lancamento buscarLancamento(Lancamento lancamento) {

		Lancamento retornaLancamento = new Lancamento();
		Session session = null;
		try {

			session = HibernateUtil.getSessionFactory().openSession();
			Criteria criteria = session.createCriteria(Lancamento.class);
			criteria.add(Restrictions.idEq(lancamento.getCodigo()));
			retornaLancamento = (Lancamento) criteria.uniqueResult();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return retornaLancamento;

	}

	public Lancamento buscarPorCodigo(Integer id) {

		Lancamento retorna = new Lancamento();
		Session session = null;

		try {

			session = HibernateUtil.getSessionFactory().openSession();
			Criteria criteria = session.createCriteria(Lancamento.class);
			criteria.add(Restrictions.idEq(id));
			retorna = (Lancamento) criteria.uniqueResult();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return retorna;
	}

}
